package com.snail.jj.androiddemos.components;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * Created by snail on 2017/5/12.
 *
 * onReceive方法内，获取随广播而来的Intent中的数据
 * 创建完Receiver后，我们需要为它注册一个指定的广播地址，没有注册广播地址的Receiver无法收到广播
 *
 * 注册广播地址
 * 1、静态注册：在AndroidManifest.xml文件中配置
 *
 *      <receiver android:name=".components.MyReceiver" >
            <intent-filter >
                <action android:name="android.intent.action.MY_BROADCAST"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </receiver>
 *
 * 2、动态注册
 *  在Activity注册广播地址
 *
 *
 *
 *  广播类型
 *  1、普通广播：只要注册了就能收到，接受者不能终止广播 abortBroadcast();不好使
 *  2、有序广播：只发送到优先级较高的接受者那里，然后由优先级高的接受者再传播到优先级低的那里，优先级高的接收者有能力终止这个广播
 *     在AndroidMianfest设计接收者的级别 abortBroadcast();级别高的好使
 *
 */

public class MyReceiver extends BroadcastReceiver {

    private static final String TAG = "MyReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        String msg = intent.getStringExtra("msg");
        Log.i(TAG,msg);
    }
}
